package day05;

import java.util.Arrays;

public class ArrayDemo {
    public static void main(String[] args) {
        /*
        //1)数组的定义
        //声明整数数组a,包含5个元素,每个元素都是int类型,默认值为0
        int[] a = new int[3];
        //声明浮点型数组d,包含10个元素,每个元素都是double类型,默认值为0.0
        double[] d =new double[10];
        //声明布尔类型数组b,包含26个元素,每个元素都是boolean类型,默认值为false
        boolean[] b = new boolean[26];
        //2)数组的初始化
        int[] arr1 = new int[3];
        int[] arr2 = {2,3,4};
        int[] arr3 = new int[]{2,3,4};
        int[] arr4;
        //arr4 = {2,3,4};//编译错误,此方式只能声明同时初始化
        arr4 = new int[]{2,3,4};//正确

        //3)数组的访问:访问的是数组中的元素
        int[] arr5 = new int[3];
        System.out.println("长度为:"+arr5.length);//3
        System.out.println("数组第一个元素:"+arr5[0]);//0
        arr5[0]=100;//给第一个元素赋值为100
        arr5[1]=200;
        arr5[2]=300;
        //arr5[3] =400;
        System.out.println(arr5[2]);//300.输出最后一个元素的值
        System.out.println(arr5[arr5.length-1]);//300.输出最后一个元素的值
        */
        //4)数组的遍历
        /*
        int[] arr = new int[10];
        for(int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*100);
            System.out.println(arr[i]);
        }
         */

        /*
        int[] a = {10,20,30,40,50};
        int[] b = new int[6];//0,0,0,0,0,0
        //a:源数组//1:源数组的起始下标
        //b:目标数组//0:目标数组的起始下标
        //4:要复制的元素个数

        System.arraycopy(a,1,b,0,4);
        for(int i=0;i<b.length;i++){
            System.out.println(b[i]);
        }
         */

        int[] a = {11,22,33,44,55};
        //a:源数组
        //b:目标数组
        //6:目标数组的长度
        //  --若目标数组的长度>源数组长度,则末尾补默认值
        //  --若目标数组的长度<源数组长度,则末尾的裁掉
        int[] b = Arrays.copyOf(a,6);
        for(int i=0;i<b.length;i++){
            System.out.println(b[i]);
        }

    }
}
